/*
Humanloop API

The Humanloop API allows you to interact with Humanloop from your product or service.

You can do this through HTTP requests from any language or via our official Python or TypeScript SDK.

To install the official [Python SDK](https://pypi.org/project/humanloop/), run the following command:

```bash
pip install humanloop
```

To install the official [TypeScript SDK](https://www.npmjs.com/package/humanloop), run the following command:

```bash
npm i humanloop
```

---

Guides and further details about key concepts can be found in [our docs](https://docs.humanloop.com/).

The version of the OpenAPI document: 4.0.1


NOTE: This file is auto generated by Konfig (https://konfigthis.com).
*/
import type * as buffer from "buffer"

import { ToolSource } from './tool-source';

/**
 * 
 * @export
 * @interface ToolConfigResponse
 */
export interface ToolConfigResponse {
    /**
     * Description of the tool referenced by the model
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'description'?: string;
    /**
     * Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
     * @type {object}
     * @memberof ToolConfigResponse
     */
    'parameters'?: object;
    /**
     * String ID of config. Starts with `config_`.
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'id': string;
    /**
     * Other parameters that define the config.
     * @type {object}
     * @memberof ToolConfigResponse
     */
    'other'?: object;
    /**
     * 
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'type': ToolConfigResponseTypeEnum;
    /**
     * Name for the tool referenced by the model.
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'name': string;
    /**
     * Source of the tool. If defined at an organization level will be \'organiztion\' else \'inline\'.
     * @type {ToolSource}
     * @memberof ToolConfigResponse
     */
    'source'?: ToolSource;
    /**
     * Code source of the tool.
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'source_code'?: string;
    /**
     * Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
     * @type {object}
     * @memberof ToolConfigResponse
     */
    'setup_schema'?: object;
    /**
     * The function signature of the tool when being called.
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'signature'?: string;
    /**
     * Whether the tool is one where Humanloop defines runtime or not.
     * @type {boolean}
     * @memberof ToolConfigResponse
     */
    'is_preset'?: boolean;
    /**
     * If is_preset = true, this is the name of the preset tool on Humanloop. This is used as the key to lookup the Humanloop runtime of the tool
     * @type {string}
     * @memberof ToolConfigResponse
     */
    'preset_name'?: string;
}

type ToolConfigResponseTypeEnum = 'tool'


